﻿/**********************************************************************
 * @file   GUISpectraAngularVelocityDialog.h
 * @brief  角速度谱对话框
 * @author BaGuijun (baguijun@163.com)
 * @date   2024-12-09
 *********************************************************************/
#ifndef GUISpectraAngularVelocityDialog_H
#define GUISpectraAngularVelocityDialog_H

#include "GUIPhyscisDialogAPI.h"
#include "GUISpectraDialogBase.h"


namespace GUI
{
    /**
     * @brief  角速度谱对话框
     * @author BaGuijun (baguijun@163.com)
     * @date   2024-12-09
     */
    class GUIPhyscisDialogAPI GUISpectraAngularVelocityDialog : public GUISpectraDialogBase
    {
    public:
        /**
         * @brief    构造函数
         * @param[i] spectraDataID        数据对象id
         * @param[i] isCreate             是否是创建模式
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-09
         */
        explicit GUISpectraAngularVelocityDialog(int spectraDataID, bool isCreate);
        /**
         * @brief    析构函数
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-09
         */
        virtual ~GUISpectraAngularVelocityDialog();
    protected:
        /**
         * @brief    初始化
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-05
         */
        virtual void init() override;
        /**
         * @brief    更新Form类型
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         */
        virtual void upateFormType() override;
        /**
         * @brief    更新图标窗口Y轴标题
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-10
         */
        virtual void updatePlotYTitle() override;
        /**
         * @brief    更新零DB单位
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-12
         */
        virtual void updateZeroDBUnit() override;
        /**
         * @brief    创建新频谱对象
         * @return   Acoustics::FITKAcousticsAbstractSpectra*     频谱对象
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-11
         */
        virtual Acoustics::FITKAcousticsAbstractSpectra* createNewSpectra() override;
        /**
         * @brief    将数据设置至界面信息
         * @param[i] data        数据对象
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-09
         */
        virtual void setDataToWidget(Acoustics::FITKAcousticsAbstractSpectra* data) override;
        /**
         * @brief    将界面信息存储至数据
         * @param[i] data        数据对象
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-09
         */
        virtual void getDataFromWidget(Acoustics::FITKAcousticsAbstractSpectra* data) override;
    };
}
#endif // GUISpectraAngularVelocityDialog_H
